package controle.teste;

import controle.utils.Datas;
import controle.utils.Horas;
import java.io.IOException;
import modelo.*;
import persistencia.dao.AbstractDAO;

/**
 * Classe para Testes
 *
 * @author Maycon Fernando Silva Brito @email mayconfsbrito@gmail.com
 * 
 * Teste 1 - Meu PC
 * Tempo gasto para cadastrar todos os locais: 66197327
 * Logradouros: 40000
 * Localidades: 500
 * Quadras por Localidade: 7
 * Imóveis por Quadra: 8
 * Tempo de Sincronização com APK Android: 4572102
 */
public class TesteCadastroMassivo {

    public static void main(String[] args) throws IOException {

        long start = System.currentTimeMillis();
        Municipio mun = new Municipio("3100001", "João Monlevade", "MG");
        mun.setIdMunicipio(1);
        AbstractDAO.cadastrar(mun);

        if (mun != null) {

            System.out.println("Cadastrando Logradouros");
            for (int index = 0; index < 40000; index++) {
                AbstractDAO.cadastrar(new Logradouro(mun, "Rua " + index));
            }
            System.out.println("Logradouros Cadastrados");

            System.out.println("Cadastrando Locais");
            for (int index = 1; index < 501; index++) {
                Localidade loc = new Localidade(index, mun, index, "Localidade nº " + index, false, Datas.getDataHoje(), Horas.getHoraAgora());
                AbstractDAO.cadastrar(loc);
                
                
                for(int index1 = 1; index1 < 8; index1++){
                    Quadra qua = new Quadra(loc, index1);
                    AbstractDAO.cadastrar(qua);
                    qua.setIdQuadra(index);
                    
                    Logradouro log = new Logradouro();
                    log.setIdLogradouro(index1);
                    AbstractDAO.cadastrar(new Quadralogradouro(qua, log));
                    
                    for(Integer index2 = 1; index2 < 9; index2++){
                        Imovel imo = new Imovel(qua, log, index2.toString());
                        AbstractDAO.cadastrar(imo);
                    }
                }

                System.out.println("Localidade nº" + index + " e suas dependências cadastradas com sucesso.");
            }
        }

        System.out.println("Tempo gasto para cadastrar todos os locais: " + (System.currentTimeMillis() - start));
    }
}